/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.service;


import com.comac.ins.common.BaseResult;
import com.comac.ins.config.FeignConfiguration;
import com.comac.ins.vo.req.GetGroupBaseInfoReqVO;
import com.comac.ins.vo.req.SelectGroupPageRequestVO;
import com.comac.ins.vo.res.GroupBaseInfoResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * 类SysGroupService.java的实现描述：人员组 service
 *
 * @author fan.tianpeng 2021-05-06 19:30:27
 */
@FeignClient(url = "${feign.userCenterUrl:}", value = "usercenter-service", contextId = "sysGroup", configuration = FeignConfiguration.class)
@Api(tags = "人员组管理", value = "人员组管理")
public interface FeignSysGroupService {

    /**
     * 人员组分页查询
     *
     * @param vo 入参
     * @return 分页结果
     */
    @ApiOperation(value = "获取人员组信息列表")
    @RequestMapping(value = "feignApi/userCenter/sysGroup/selectPage", method = RequestMethod.POST)
    BaseResult selectPage(@RequestBody SelectGroupPageRequestVO vo);

    /**
     * 人员组详情页查询
     *
     * @param vo
     * @return
     */
    @ApiOperation(value = "根据人员组id获取人员组下员工详情信息")
    @RequestMapping(value = "feignApi/userCenter/sysGroup/selectEmployeeDetailPageByGroupId", method = RequestMethod.POST)
    BaseResult selectEmployeeDetailPageByGroupId(@RequestBody SelectGroupPageRequestVO vo);

    /**
     * 根据用户姓名，模糊搜索所有群组下的模糊匹配的列表（有条件则返回人员清单，无则返回人数）
     *
     * @param vo
     * @return
     */
    @ApiOperation(value = "根据人员信息模糊匹配人员组信息")
    @RequestMapping(value = "feignApi/userCenter/sysGroup/selectGroupPageByEmployeeCondition", method = RequestMethod.POST)
    BaseResult selectGroupPageByEmployeeCondition(@RequestBody SelectGroupPageRequestVO vo);

    @ApiOperation(value = "通过人员组Id或Code查询人员组基本信息")
    @RequestMapping(value = "feignApi/userCenter/sysGroup/getGroupBaseInfoByIdOrCode", method = RequestMethod.POST)
    BaseResult<GroupBaseInfoResponseVO> getGroupBaseInfoByIdOrCode(@RequestBody GetGroupBaseInfoReqVO paramVO);
}
